namespace plus{
    export class accelerometer{
        /**
         * 获取当前设备的加速度
         * @param {Function} success
         * @param {Function} error
         * @link http://www.html5plus.org/doc/zh_cn/accelerometer.html#plus.accelerometer.getCurrentAcceleration
         */
        static getCurrentAcceleration(success:Function,error:Function=null) {

        }

        /**
         * 监听设备加速度变化信息
         * @param {Function} success
         * @param {Function} error
         * @param option
         * @returns {Number}
         */
        static watchAcceleration(success:Function,error:Function=null,option:AccelerometerOption=null):Number {
            return 1;
        }

        /**
         * 清楚监听
         * @param {number} watchId
         */
        static clearWatch(watchId:number){}
    }
    export interface AccelerometerOption{
        /**
         * 间隔时间，单位为ms
         */
        frequency:Number;//间隔时间，单位为ms
    }
    export interface Acceleration{
        xAxis:Number;//x轴
        yAxis:Number;//y轴
        zAxis:Number;//z轴
    }

    export class audio{
        /**
         * 扬声器输出
         * @type {number}
         */
        static ROUTE_EARPIECE=1;
        /**
         * 听筒输出
         * @type {number}
         */
        static ROUTE_SPEAKER=1;

        /**
         * 获取录音对象
         * @returns {plus.AudioRecorder}
         */
        static getRecorder():AudioRecorder{
            return null;
        }

        /**
         * 创建音频播放对象
         */
        static createPlayer():AudioPlayer{
            return null;
        }

    }
    export class AudioPlayer{
        /**
         * 播放
         * @param {Function} success
         * @param {Function} error
         */
        static play(success:Function,error:Function=null){}

        /**
         * 暂停
         */
        static pause(){}

        /**
         * 继续播放
         */
        static resume(){}

        /**
         * 停止播放
         */
        static stop(){}

        /**
         * 跳到指定位置播放音频
         * @param position
         * @returns {void}
         */
        static seekTo(position){}

        /**
         * 获取音频的总长度
         * @returns {number}
         */
        static getDuration():number{return 1;}

        /**
         * 获取当前播放的位置
         * @returns {number}
         */
        static getPosition():number{return 1;}

        /**
         * 设置音频输出线路
         */
        static setRoute(route:Number){}
    }
    /**
     * 录音对象
     */
    export interface AudioRecorder{
        supportedSamplerates:string[];
        supportedFormats:string[];

        record(option:{
            /**
             * 保存录音文件的路径
             */
            filename:string,
            /**
             * 录音文件的采样率
             */
            samplerate:string,
            /**
             *  Android平台支持"amr"、"3gp"格式，默认为"amr"。 iOS平台支持"wav"、"aac"、"amr"格式，默认为"wav"
             */
            format:string
        },success:Function,error:Function);
        stop();
    }
    /**
     *
     * @param {number} type
     * @param {string} code
     * @param {string} file
     * @constructor
     */
    export function BarCodeSuccessCallback(type:number,code:string,file:string){}
    export function BarCodeErrorCallback(error:error){}
    export class error{
        static code:string;
        static message:string;
    }
    export class barcode{
        static QR=0;
        static EAN13=0;
        static EAN8=0;
        static AZTEC=0;
        static DATAMATRIX=0;
        static UPCA=0;
        static UPCE=0;
        static CODABAR=0;
        static CODE39=0;
        static CODE93=0;
        static CODE128=0;
        static ITF=0;
        static MAXICODE=0;
        static PDF417=0;
        static RSS14=0;
        static RSSEXPANDED=0;

        /**
         * 扫码
         * @param {String} path 路径
         * @param {Function} success 成功回调
         * @param {Function} error
         * @param {[number]} filters
         */
        static scan(path:String,success:Function,error?:Function,filters?:[number]):void{}
        static Barcode={
            /**
             * 开始扫码
             * @param option
             */
            start(option):void{}
        };
        /**
         * 条码选项
         */
        static BarcodeOptions:BarcodeOptions;
    }
    export class BarcodeOptions{
        static conserve:boolean;//是否保存成功扫描到的条码数据时的截图，默认为false
        static filename:boolean;//保存成功扫描到的条码数据时的图片路径
        static vibrate:boolean;//成功扫描到条码数据时是否需要震动提醒
        static sound:boolean;//成功扫描到条码数据时播放的提示音类型
    }

}